package ar.edu.caece.pl.asem.model.impl;

import ar.edu.caece.pl.asem.model.IVisitor;
import ar.edu.caece.pl.asin.manager.IAnalizadorSintactico;
import ar.edu.caece.pl.asin.model.impl.BloqueVarParam;
import ar.edu.caece.pl.asin.model.impl.BloqueVarParam1;
import ar.edu.caece.pl.asin.model.impl.C1;
import ar.edu.caece.pl.asin.model.impl.CallingParams;
import ar.edu.caece.pl.asin.model.impl.Condicion;
import ar.edu.caece.pl.asin.model.impl.E1;
import ar.edu.caece.pl.asin.model.impl.Else;
import ar.edu.caece.pl.asin.model.impl.Expresion;
import ar.edu.caece.pl.asin.model.impl.Factor;
import ar.edu.caece.pl.asin.model.impl.Factor1;
import ar.edu.caece.pl.asin.model.impl.Factor2;
import ar.edu.caece.pl.asin.model.impl.Header;
import ar.edu.caece.pl.asin.model.impl.ProcsFuncs;
import ar.edu.caece.pl.asin.model.impl.Sentencia;
import ar.edu.caece.pl.asin.model.impl.Sentencia1;
import ar.edu.caece.pl.asin.model.impl.ShowElem;
import ar.edu.caece.pl.asin.model.impl.ShowElementNext;
import ar.edu.caece.pl.asin.model.impl.T1;
import ar.edu.caece.pl.asin.model.impl.Termino;
import ar.edu.caece.pl.asin.model.impl.Termino1;
import ar.edu.caece.pl.asin.model.impl.Tipo;
import ar.edu.caece.pl.asin.model.impl.TipoC;
import ar.edu.caece.pl.asin.model.impl.TipoC1;
import ar.edu.caece.pl.asin.model.impl.Var;
import ar.edu.caece.pl.asin.model.impl.Var1;
import ar.edu.caece.pl.asin.model.impl.Var2;
import ar.edu.caece.pl.asin.model.impl.Var3;

public class LoggingVisitor implements IVisitor {

	//Singleton
	private static IVisitor instance = new LoggingVisitor();
	private LoggingVisitor(){}
	public static IVisitor getInstance() { return instance; }
	
	@Override
	public void visit(IAnalizadorSintactico noTerminal) {
		this.visit(noTerminal);		//Aqui, la magia del polimorfismo :)
	}
	
	public void visit(BloqueVarParam noTerminal) {
		
	}
	
	public void visit(BloqueVarParam1 noTerminal) {
		
	}
	
	public void visit(C1 noTerminal) {
		
	}

	public void visit(CallingParams noTerminal) {
		
	}
	
	public void visit(Condicion noTerminal) {
			
	}
	
	public void visit(E1 noTerminal) {
		
	}
	
	public void visit(Else noTerminal) {
		
	}
	
	public void visit(Expresion noTerminal) {
		
	}
	
	public void visit(Factor noTerminal) {
		
	}
	
	public void visit(Factor1 noTerminal) {
		
	}
	
	public void visit(Factor2 noTerminal) {
		
	}
	
	public void visit(Header noTerminal) {
		
	}
	
	public void visit(ProcsFuncs noTerminal) {
		
	}
	
	public void visit(Sentencia noTerminal) {
		
	}
	
	public void visit(Sentencia1 noTerminal) {
		
	}
	
	public void visit(ShowElem noTerminal) {
		
	}
	
	public void visit(ShowElementNext noTerminal) {
		
	}
	
	public void visit(T1 noTerminal) {
		
	}
	
	public void visit(Termino noTerminal) {
		
	}
	
	public void visit(Termino1 noTerminal) {
		
	}
	
	public void visit(Tipo noTerminal) {
		
	}
	
	public void visit(TipoC noTerminal) {
		
	}
	
	public void visit(TipoC1 noTerminal) {
		
	}
	
	public void visit(Var noTerminal) {
		
	}
	
	public void visit(Var1 noTerminal) {
		
	}
	
	public void visit(Var2 noTerminal) {
		
	}
	
	public void visit(Var3 noTerminal) {
		
	}
	
}
